package se.cth.hedgehogphoto.log;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
/**
* A custom formatter designed around readability
* @author Barnabas Sapan
*/
public class EasyFormatter extends Formatter {
@Override
public String format(LogRecord record) {
StringBuilder sb = new StringBuilder(1000);
sb.append("[");
sb.append(record.getLevel());
sb.append(" | ");
sb.append(record.getSourceClassName());
if(record.getThrown() != null){
sb.append(" | ");
sb.append(record.getThrown().toString());
}
sb.append("]: ");
sb.append(record.getMessage());
if(record.getThrown() != null){
sb.append(" "+ record.getThrown().getStackTrace()[0].toString());
}
sb.append(System.getProperty("line.separator"));
return sb.toString();
}
@Override
public String getHead(Handler h){
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
StringBuilder sb = new StringBuilder()
.append(System.getProperty("line.separator"))
.append("HedgehogPhoto ")
.append(dateFormat.format(cal.getTime()))
.append(" -----------------------")
.append(System.getProperty("line.separator"))
.append(System.getProperty("line.separator"));
return sb.toString();
}
@Override
public String getTail(Handler h){
return new StringBuilder()
.append(System.getProperty("line.separator"))
.append("----------------------------------------------------------")
.toString();
}
}